1. Technical Field
The present invention relates, generally, to integrated circuit cards (“smart cards”) and, more particularly, to systems for authenticating, via cryptographic techniques, the download of information (“applets”) onto a smart card via a trusted third party.
2. Background Information
The term “smart card” refers generally to wallet-sized or smaller cards incorporating a microprocessor or microcontroller to store and manage data within the card. More complex than magnetic-stripe and stored-value cards, smart cards are characterized by sophisticated memory management and security features. A typical smart card includes a microcontroller embedded within the card plastic which is electrically connected to an array of external contacts provided on the card exterior. A smart card microcontroller generally includes an electrically-erasable and programmable read-only memory (EEPROM) for storing user data, random access memory (RAM) for scratch storage, and read only memory (ROM) for storing the card operating system. Relatively simple microcontrollers are adequate to control these functions. Thus, it is not unusual for smart cards to utilize 8-bit, 5 MHZ microcontrollers with about 8K or more of EEPROM memory (for example, the Motorola 6805 or Intel 8051 microcontrollers).
A number of standards have been developed to address general aspects of integrated circuit cards, e.g.: ISO 7816-1, Part 1: Physical characteristics (1987); ISO 7816-2, Part 2: Dimensions and location of the contacts (1988); ISO 7816-3, Part 3: Electronic signals and transmission protocols (1989, Amd. 1 1992, Amd. 2 1994); ISO 7816-4, Part 4: Inter-industry commands for interchange (1995); ISO 7816-5, Part 5: Numbering system and registration procedure for application identifiers (1994, Amd. 1 1995); ISO/IEC DIS 7816-6, Inter-industry data elements (1995); ISO/IEC WD 7816-7, Part 7: Enhanced inter-industry commands (1995); and ISO/IEC WD 7816-8, Part 8: Inter-industry security architecture (1995). These standards are hereby incorporated by reference. Furthermore, general information regarding magnetic stripe cards and chip cards can be found in a number of standard texts, e.g., Zoreda & Oton, SMART CARDS (1994), and Rankl & Effing, SMART CARD HANDBOOK (1997), the contents of which are hereby incorporated by reference.
Smart cards can contain programming and data to support multiple applications. Some smart cards can be updated to add new applications and/or data after they are issued. Smart card environments have been developed that allow applets to be downloaded onto smart cards by a variety of parties. Accordingly, a typical smart card function set may include a function wherein the smart card issuer (e.g., American Express) may allow an external vendor or other third party to complete the secure download of applets onto the smart card. In such a case, it is important that a trust relationship exists between the issuer and the third party in charge of download. Unfortunately, however, current smart card systems and standards do not provide a guarantee to the issuer that the download from the third party to the smart card was completed successfully. As a result, the third party may, for any number of reasons, fake a download or unintentionally fail to sense a download error.
Thus, a need exists to overcome these and other limitations of the prior art.